/*
 * GivenQBC.h
 *
 *  Created on: 2021年1月6日
 *      Author: liuxiao
 */


#pragma once

#include "IntegratedBC.h"


class GivenQBC : public IntegratedBC
{
public:
  static InputParameters validParams();

  GivenQBC(const InputParameters & parameters);

protected:
  virtual Real computeQpResidual();
  virtual Real computeQpJacobian();

  /**
   * qdot = q-sigma * coeff * (T^4 - Tinf^4 )
   * sigma: _sigma_stefan_boltzmann
   * q: given heat flux into material by other ways
   */
///given heatflux on the boundary
  const Real _q;

  /// Stefan-Boltzmann constant
  const Real _sigma_stefan_boltzmann;

  /// Function describing the temperature of the body irhs
  const Real  _tinf;

  /// Emissivity of the boundary
  const Real _eps_boundary;
};

